index.test.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { screen } from '@testing-library/react'
  2. import { beforeAll, describe, expect, test, vi } from 'vitest'
  3. import { customRender as render } from '@/tests/lib/custom-render'
  4. vi.mock('@/components/interfaces/Home/Home', () => ({
  5. Home: () => <div data-testid="old-home" />,
  6. }))
  7. vi.mock('@/components/interfaces/ProjectHome/Home', () => ({
  8. ProjectHome: () => <div data-testid="project-home" />,
  9. }))
  10. vi.mock('@/components/layouts/DefaultLayout', () => ({
  11. default: ({ children }: { children: React.ReactNode }) => <>{children}</>,
  12. }))
  13. vi.mock('@/components/layouts/ProjectLayout', () => ({
  14. ProjectLayoutWithAuth: ({ children }: { children: React.ReactNode }) => <>{children}</>,
  15. }))
  16. vi.mock('@/lib/gotrue', () => ({
  17. auth: { onAuthStateChange: vi.fn() },
  18. }))
  19. describe('when IS_PLATFORM is true', () => {
  20. beforeAll(() => {
  21. vi.doMock('common', async (importOriginal: () => Promise<any>) => {
  22. const mod = await importOriginal()
  23. return { ...mod, IS_PLATFORM: true }
  24. })
  25. })
  26. test('renders ProjectHome', async () => {
  27. const { default: HomePage } = await import('@/pages/project/[ref]/index')
  28. render(<HomePage dehydratedState={undefined} />)
  29. expect(screen.getByTestId('project-home')).toBeInTheDocument()
  30. expect(screen.queryByTestId('old-home')).not.toBeInTheDocument()
  31. })
  32. })
  33. describe('when IS_PLATFORM is false', () => {
  34. beforeAll(() => {
  35. vi.resetModules()
  36. vi.doMock('common', async (importOriginal: () => Promise<any>) => {
  37. const mod = await importOriginal()
  38. return { ...mod, IS_PLATFORM: false }
  39. })
  40. })
  41. test('renders Home', async () => {
  42. const { default: HomePage } = await import('@/pages/project/[ref]/index')
  43. render(<HomePage dehydratedState={undefined} />)
  44. expect(screen.getByTestId('old-home')).toBeInTheDocument()
  45. expect(screen.queryByTestId('project-home')).not.toBeInTheDocument()
  46. })
  47. })